package bancosys.tec.utils.traverser;

/**
 * Interface que descreve o visitante de um nó. Não aplica exatamento o padrão pois não podemos queremos associar uma interface ao objeto
 * recebido e portanto, não aplicamos double-dispatch.
 * 
 * @author pedro
 */
public interface Visitor {

    /**
     * Método que executa a tarefa de visitar um determinado nó.
     * 
     * @param node nó que está sendo visitado.
     * @throws TraverseException caso ocorra algum problema durante a visita.
     */
    void visit(Object node) throws TraverseException;

}
